//
//  HMViewController.swift
//  WeiBo
//
//  Created by niexiaobing on 16/9/19.
//  Copyright © 2016年 niexiaobing. All rights reserved.
//

import UIKit

class HMMainViewController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = UIColor.brown
//添加子视图控制器
        
//        viewControllers = []
//        addChileViewController(viewControllers)
        
        //  使用kvc方式给oc中的类设置只读属性的值
        
        let hmTabBar = HMTabBar()
//          设置代理对象
//        hmTabBar.hmDelegate = self
        
        
//          在此使用self会产生循环引用, 解决办法使用[weak self]
        hmTabBar.composeButtonClosure = { [weak self] in
            
           
            print("我是闭包调用过来的")
            
        }

        
        setValue(hmTabBar, forKey: "tabBar")
        
        

        
        
        
        
        
        
        
        
         //  添加子视图控制器
        
        
        addChildViewController(HMHomeTableViewController(), title: "首页", imageName: "tabbar_home")
        
       addChildViewController(HMMessageTableViewController(), title: "消息", imageName: "tabbar_message_center")
        
        addChildViewController(HMDiscoverTableViewController(), title: "发现", imageName: "tabbar_discover")
         addChildViewController( HMProfileTableViewController(), title: "我的", imageName: "tabbar_profile")
      
        
    }
    
   
    func addChildViewController(_ childController: UIViewController, title: String, imageName: String) {
           //  设置tabbarItem的图片和文字
        childController.tabBarItem.image = UIImage(named: imageName)
         //  修改图片的渲染方式
        childController.tabBarItem.selectedImage = UIImage(named: "\(imageName)_selected")?.withRenderingMode(.alwaysOriginal)
        
         //  设置文字选中的颜色
        childController.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.orange], for: .selected)
        
         //  设置文字大小
        childController.tabBarItem.setTitleTextAttributes([NSFontAttributeName: UIFont.systemFont(ofSize: 14)], for: .normal)
        
         //  合并成一句代码显示标题
        childController.title = title
        
        //  创建导航视图控制器
        
        let nav = HMNavigationViewController (rootViewController: childController)
        //  添加子视图控制器
        addChildViewController(nav)
    }
    
 

 
    
}

//  使用extension可以实现代理方法
extension HMMainViewController: HMTabBarDelegate {
    
    func didSelectedComposeButton() {
        print("我是代理对象调用过来的")
    }
    
}


